package componentes.suelo;

import java.util.LinkedList;
import java.util.ListIterator;

import componentes.ElementoUbicableEnTerreno;
import componentes.Posicion;

public abstract class Suelo implements Iterable {
	
	protected LinkedList posiciones;
	
	public Suelo(){
		this.posiciones = new LinkedList();
	}

	public void addPosicion(Posicion posicionAAgregar){
		this.posiciones.add(posicionAAgregar);
	}
	
	protected LinkedList getPosiciones(){
		return this.posiciones;
	}
	
	public abstract boolean puedoUbicarEnElTerreno(ElementoUbicableEnTerreno elemento);
	
	public ListIterator iterator(){
		return this.posiciones.listIterator();
	}
	
	public boolean contienePosicion(Posicion posicion){
		return this.posiciones.contains(posicion);
	}
}
